As integrated circuit (IC) fabrication technology improves, manufacturers are able to integrate additional functionality onto a single chip. The additional functionality in turn increases the complexity of the designs. Also, the increase in the complexity lengthens the design process.
A typical design process for ICs includes a front-end design phase and a back-end development phase. During the front-end phase, hardware engineers design and develop a logical representation of an IC from a set of specifications in the form of a schematic. The schematic is then loaded into a computer from which a circuit netlist is generated. The netlist defines the entire IC design including all components and interconnections.
The IC information may be developed using a hardware description language (HDL) and synthesis. With the aid of circuit simulation tools available on computers, a designer can then simulate the functionality of a given circuit. The circuit simulation process may involve several iterations of design modifications and improvements until the circuit design is finalized.
The back-end development involves several steps during which a final circuit layout (physical description) is developed based on the schematic design of the front-end phase. Various building blocks (or cells), as defined by the finalized circuit schematic, are placed within a predefined floor plan. The cells are then interconnected during a routing stage. After routing, the accuracy of the layout is verified against the schematic, and if no errors or design rule violations are found, the circuit layout information is used for the process of fabrication. The fabricated IC may be further verified to check for fabrication errors.
The use of computers substantially speeds up the verification process. However, verification of complex designs can still add substantial delay to finalizing a design. For example, a team of software designers who write, compile, and debug the software code for the verification tool has to closely cooperate with a team of hardware designers who design the actual hardware.
Coordinating these teams from both a technical perspective (i.e., merging software expertise with hardware expertise) and a timing perspective can be a challenging task when verifying a complex design. In particular, for each change to the verification tool, members from both teams would have to be consulted and coordinated. This problem is further amplified due to the existence of a multitude of tools that are utilized in design and verification of an IC.